OBJ = tracer.o Vector/Vector.o Scene/Scene.o Primitives/Primitives.o Color/Color.o Camara/Camara.o

all: $(OBJ)
	g++ -o tracer $^ -lSDL

tracer.o: tracer.cpp Vector/Vector.h Scene/Scene.h Primitives/Primitives.h Material.h Color/Color.h PointLight.h Camara/Camara.h
	g++ -c -o $@ $< -lSDL

Vector/Vector.o: Vector/Vector.cpp Vector/Vector.h
	g++ -c -o $@ $<

Scene/Scene.o: Scene/Scene.cpp Scene/Scene.h Primitives/Primitives.h Material.h Color/Color.h Vector/Vector.h PointLight.h Camara/Camara.h
	g++ -c -o $@ $<

Primitives/Primitives.o: Primitives/Primitives.cpp Primitives/Primitives.h Vector/Vector.h Material.h
	g++ -c -o $@ $<

Color/Color.o: Color/Color.cpp Color/Color.h
	g++ -c -o $@ $<

Camara/Camara.o: Camara/Camara.cpp Camara/Camara.h Vector/Vector.h
	g++ -c -o $@ $<

clean:
	rm -rf $(OBJ)
